package cn.b.sky.schedule.job;

import cn.b.sky.schedule.model.TimedJobInfo;
import org.quartz.JobExecutionContext;
import org.springframework.util.MethodInvoker;

/**
 * 
 * <strong>Title : JobHelper.java<br></strong>
 * <strong>Package : cn.b.sky.schedule.job<br></strong>
 * <strong>Description : </strong>作业相关辅助类<br> 
 * <strong>Create on : 2016年7月29日 下午2:29:25<br></strong>
 * <p>
 * @author JunLin.Yang<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人|修改日期|修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public class JobHelper {

  public final static String METHOD_INVOKER = "methodInvoker";
  
  /**
   * 
   * <strong>Title : getTimedJobInfo<br></strong>
   * <strong>Description : </strong>从Job执行上下文中获取作业数据信息<br> 
   * <strong>Create on : 2016年7月29日 下午2:29:39<br></strong>
   * <p>
   * @param context Job执行上下文
   * @return
   * TimedJobInfo 作业数据信息
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public static TimedJobInfo getTimedJobInfo(JobExecutionContext context){
    MethodInvoker invoker = (MethodInvoker) context.getJobDetail().getJobDataMap().get(METHOD_INVOKER);
    return  (TimedJobInfo) invoker.getArguments()[0];
  }
  
}
